package org.dromara.quick.chat.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

/**
 * 好友消息表-使用MongoDB库[不能有失效时间，因为消息是对方看到后多少秒销毁，并非发送后多少秒销毁]
 * @TableName im_message
 */
@TableName(value ="im_message")
@Data
public class ImMessage {
    /**
     * (唯一标识) 消息记录的唯一编号，系统自动生成，用于区分不同的消息记录
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * (发送者ID) 消息发送者的用户编号，关联平台用户表中的用户编号
     */
    private Long senderId;

    /**
     * (接收者ID) 消息接收者的用户编号，关联平台用户表中的用户编号
     */
    private Long receiverId;

    /**
     * (消息类型) 消息的类型，0：表情，1：语音，2：礼物，3：图片，4：视频，5：GPS定位，6：地图选址，7：好友申请，8：红包，9：转账，10：文件
     */
    private Integer messageType;

    /**
     * (消息内容) 文字消息，表情，语音地址，礼物编号，图片地址，视频地址等
     */
    private String message;

    /**
     * (发送时间) 消息的发送时间
     */
    private Date sendTime;

    /**
     * (引用消息ID) 引用的其他消息的编号
     */
    private Long referenceMessageId;

    /**
     * (经纬度地址) 经纬度地址信息，以 JSON 格式存储
     */
    private Object coordinateAddress;

    /**
     * (位置信息) 省市区镇详细地址
     */
    private String locationInfo;

    /**
     * (创建时间) 消息记录的创建时间，系统自动记录
     */
    private Date createTime;

    /**
     * 消息所属的频道类型，1 代表个人频道，2 代表群聊频道
     */
    private Integer channelType;
}